1. Field of the Invention
The present invention relates a storage device having a plurality of storage parts such as magnetic disk drives, and a method of accessing such a storage device.
A storage device is known in which a plurality of different kinds of data streams are written, in dispersed formation, into storage parts such as magnetic disk drives every unit data and is sequentially read therefrom every unit data. Such a storage device enables a multiple access, and may be applied to various applications such as a VOD (Video On Demand). It is desired to realize a flexibility of access to the storage device having a plurality of storage parts.
2. Description of the Related Art
FIG. 1 is a block diagram of a conventional storage device having seven magnetic disk drives DSK1 through DSK7 respectively serving as storage parts. Symbols "title1-1", "title1-2", "title1-3", . . . respectively denote unit data, which is obtained by dividing a data stream title1. Symbols "title2-1", "title2-2", "title2-3", . . . respectively denote unit data, which is obtained by dividing a data stream title2. Similarly, Symbols "title7-1", "title7-2", "title7-3", . . . respectively denote unit data, which is obtained by dividing a data stream title7. The pieces of the data stream title1-title7 are stored, every unit data, in the magnetic disk devices DSK1-DSK7 in the dispersed formation. A storage method as described above is called a striping method.
When the data stream title1 is specified and read, the unit data title1-1 is read from the magnetic disk drive DSK1. Next, the unit data title1-2 is read from the magnetic disk drive DSK2. Then, the unit data title1-3 is read from the magnetic disk drive DSK3. The above read operation is indicated by arrows of broken lines shown in FIG. 1. That is, the magnetic disk drives are sequentially accessed in the order of DSK1, DSK2, DSK3, DSK4, DSK5, DSK6, DSK7, DSK1, . . . , whereby the data stream title1 is read therefrom. When the data title6 is specified and read, the magnetic disk drives DSK1 through DSK7 are accessed in the order of DSK6, DSK7, DSK1, DSK2, DSK3, DSK4, DSK6, DSK6, DSK7, . . . , so that the reading cycles thereof do not conflict with the cycles for reading the unit data title1-6, title1-7, . . .
For example, if the data stream is video data, the unit data is defined by compressing and encoding video data equal to one frame or a few frames. If the title title2 is specified, the first unit data is read from the magnetic disk drive DSK2 as title2-1, and the next unit data is read from the magnetic disk drive DSK3 as title2-2. On the receiving and reproducing side, the unit data is decoded and buffered, so that the consecutive data stream can be reproduced. The compressing and encoding method for video data may be various known methods. For example, a standardized compressing and encoding method such as an MPEG (Moving Picture Experts Group) can be used. In this case, the video data is stored in the dispersed formation every unit data equal to one frame or a few frames.
FIG. 2 is a sequence diagram of a read operation, which was proposed in a prior Japanese Patent Application which is not laid-opened or published and is not prior art.
In FIG. 2, symbols (DSK1)-(DSKn) indicate access states of the magnetic disk drives DSK1-DSKn, and a symbol (BUS) denotes a read request and data transferred on a bus BUS. Data read from the magnetic disk drives DSK1-DSKn in response to a read request from a user are transferred on the bus BUS. The magnetic disk drives DSK1-DSKn are connected together via the bus BUS, and perform data read process with respect to a read request applied via the bus BUS. Then, the magnetic disk drives DSK1-DSKn buffer read data and transfer the read data via the bus BUS. Hence, the read request and read data alternately appear on the bus BUS. Each of the magnetic disk drives DSK1-DSKn performs the read process in response to the read request, and sends the read data to the bus BUS.
The magnetic disk drives are sequentially accessed so that unit data D1, D2, . . . are sequentially read from the magnetic disk drives DSK1, DSK2, . . . Free or idle times are provided in access time slots which are not identical times with respect to the magnetic disk drives DSK1-DSKn, so that an access modification can be handled. In FIG. 2, blocks of broken lines denote idle access time slots.
FIG. 3 is a sequence diagram of a write operation, which was proposed in the prior Japanese Patent Application which is not laid-opened or published and is thus not prior art. As shown in FIG. 2, the symbols (DSK1)-(DSKn) indicate access states of the magnetic disk drives DSK1-DSKn, and the symbol (BUS) denotes a read request and data transferred on the bus BUS. FIG. 3 shows a case where a read request and a write request coexist. The read process is carried out for the read request as has been described above, and data is transferred via the bus BUS. The write process is performed so that write data following the write request is input to a corresponding one of the magnetic disk drives DSK1-DSKn. That is, the data is written into the magnetic disk drives DSK1-DSKn for each unit data, namely, WD1, WD2, . . .
For example, in the write process in the magnetic disk drive DSK3, the write request and write data are input thereto before the immediately previous read process is completed. Hence, the read process immediately before the write process is completed, and it is necessary to make the time slot idle, as indicated by the broken line. Hence, as shown in FIG. 3, by providing the idle time slot, the access time slot immediately thereafter can be used for writing.
FIGS. 4A and 4B show two states of a schedule table, which was proposed in the prior Japanese Patent Application which is not laid-opened or published and is thus not prior art. The scheduling is carried out so that n.multidot.m+k is satisfied where n is the sum of the maximum number of users and the number of idle access time slots, m is an integer equal to or greater than 1, and k is an integer that satisfies a condition 1.ltoreq.k&lt;n. For example, n=7, m=5 and k=1, the maximum number of users is 34, and the number of idle access time slots is 2.
The schedule table as shown in FIGS. 4A and 4B needs an area equal to at least twice the above-mentioned condition (n.multidot.m+k). A pointer is used to indicate a position to be referenced, and specified information concerning the magnetic disk drive located at the pointed position and user information are read. Then, a command to the specified magnetic disk drive (storage part) is issued. The same content as described above is written into an area located with an access cycle T starting from the position indicated by the pointer. That is, the same user information is written into two areas spaced apart therefrom at an interval equal to the cycle T of the schedule table. The pointer is sequentially moved at given time intervals, and the access control of the storage device can be carried out in accordance with the user information in the area indicated by the pointer and the corresponding magnetic disk drive.
For example, as shown in FIG. 4A, specified information concerning the magnetic disk drive DSK1 and user A information are stored in the area indicated by the pointer. Specified information concerning the magnetic disk drive DSK2 to be next accessed and user A information are stored in the area located after the access cycle T from the above area in which the specified information concerning the drive DSK1 and the user A information are stored. When an access command to the magnetic disk drive DSK1 in the area indicated by the pointer is issued to the storage device by a control device, the user A information corresponding to the magnetic disk drive DSK1 located in the pointed position is deleted.
Next, as shown in FIG. 4B, the pointer indicates the magnetic disk drive DSK2 to be next accessed. In this case, the drive DSK2 is idle. In the state shown in FIG. 4A, the user A information and the specified information concerning the magnetic disk drive DSK2 are stored in the position after the access cycle T from the position specified by the pointer. Hence, in the state shown in FIG. 4B, the magnetic disk drive DSK3 to be accessed after the access cycle T is stored with respect to the user A. That is, the magnetic disk drives to be accessed with respect to the same user are always written into two areas (positions) located at the access interval T.
In the state shown in FIG. 4B, an access command to the storage device is not issued (pause) by the control device with respect to the magnetic disk drive DSK2 in the area specified by the pointer if the aforementioned idle time slot is set. The control device is allowed to perform another process such as a maintenance process during the above pause cycle. Hence, the control device can efficiently be operated.
Even if there is no specified user, there is a magnetic disk drive after the access cycle T. Thus, after the pause cycle for the magnetic disk drive DSK2, the issue of an access command is made to pause after the access cycle T following the pause for the magnetic disk drive DSK2. Hence, the pause cycles can be serially provided for the respective magnetic disk drives, so that desired processes such as a request for a modification of the access schedule and a process for correcting the positions of heads of the magnetic disk drives.
The number of users is determined based on the number of magnetic disk drives of the storage device. Hence, it may be considered to add some magnetic disk drives in accordance with an increase of users. For example, as shown in FIG. 5A, unit data of a data stream is read and transferred via the bus BUS with the access cycle T in the structure in which the magnetic disk drives DSK1-DSKn are connected to the bus BUS.
As shown in FIG. 5B, if a (arbitrary number) magnetic disk drives DSKn+a are newly provided, the unit data is read from the magnetic disk drive DSK1 and the next unit data is read from the magnetic disk drive DSK2 after a time tv longer than the access cycle T passes in order to enable the sequential access to the disk magnetic drives DSK1-DSKn+a. Hence, when new magnetic disk drives are provided, it is necessary to rearrange the unit data so that the unit data can be read within the access cycle T.
As shown in FIG. 5C, it is possible to sequentially read the unit data within the access cycle T even after new magnetic disk drives are provided by rearranging the unit data beforehand so that a new provision of magnetic disk drives DSKn+b (b is an arbitrary integer) can be made. In this case, it is necessary to rearrange the unit data as shown in FIG. 5B, if a number of magnetic disk drive greater than a predetermined maximum number of magnetic disk drives is newly provided.
When data stored in the storage device having a plurality of magnetic disk drives is requested at a given bit rate by the user, the above-mentioned process can accept this request.
However, the user may request data at a bit rate lower or higher than the given bit rate. For example, it is requested to realize a slow reproduction or a quick reproduction. The above-mentioned process cannot quickly respond to such requests. A similar problem occurs when the user requests to write data at a low or high bit rate rather than a normal given bit rate.
An increase in the storage capacity of the whole storage device in accordance with an increase in the number of users needs a rearrangement of unit data as has been described previously. In this case, it is necessary to stop providing the users with services, so that the services are degraded.